Skip to content

Document how to connect a remote BMC in the Tilt dev environment#760

Merged
afritzler merged 3 commits intomainfrom
doc/dev_remote_bmc
Apr 21, 2026
Merged

Document how to connect a remote BMC in the Tilt dev environment#760
afritzler merged 3 commits intomainfrom
doc/dev_remote_bmc

Conversation

@xkonni
Copy link
Copy Markdown
Contributor

@xkonni xkonni commented Mar 27, 2026

Proposed Changes

  • adds documentation to connect a remote bmc to the local development cluster

Fixes

  • no issue for this, it's a general enhancement of the docs

Summary by CodeRabbit

  • Documentation
    • Added a "Connecting a Remote BMC in the Tilt environment" walkthrough to swap the default Redfish mock server for real hardware, prepare and apply base64-encoded BMC credentials to a local Kind cluster, and verify BMC/Server resources and controller logs.
    • Added guidance for HTTPS BMCs and an optional debug build including curl and CA certificates.
    • Minor formatting and whitespace fixes.

@xkonni xkonni requested a review from a team as a code owner March 27, 2026 15:15
@github-actions github-actions Bot added size/M documentation Improvements or additions to documentation labels Mar 27, 2026
@xkonni xkonni force-pushed the doc/dev_remote_bmc branch from 8d92bde to 6d11946 Compare March 27, 2026 15:18
@github-actions github-actions Bot added size/L and removed size/M labels Mar 27, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Mar 27, 2026

📝 Walkthrough

Walkthrough

Added documentation and formatting updates to docs/development/dev_setup.md, including a new "Connecting a Remote BMC in the Tilt Environment" section that documents replacing the Redfish mock with a real BMC, creating/applying a base64 BMCSecret, configuring Tilt for HTTPS, verification steps, teardown, and an optional debug build stage.

Changes

Cohort / File(s) Summary
Development Documentation
docs/development/dev_setup.md
Formatting fixes in "Run the local test suite" and new "Connecting a Remote BMC in the Tilt Environment" section: ensure remote BMC is unmanaged, replace config/redfish-mockup/redfish_mockup_endpoint.yaml with a BMC resource, create/apply a base64 BMCSecret to the Kind cluster, set HTTPS flags (--insecure=false) in the Tiltfile, start Tilt and verify BMC/Server resources and controller-manager logs, teardown with make kind-delete, and document an optional manager-debug Docker build stage for connectivity debugging.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: adding documentation for connecting a remote BMC in the Tilt dev environment, which matches the primary focus of the changeset.
Description check ✅ Passed The description covers the main change and follows the template structure with Proposed Changes and Fixes sections, though the Fixes section notes no issue (which is acceptable for documentation enhancements).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch doc/dev_remote_bmc

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/development/dev_setup.md`:
- Around line 116-129: The title and explanation are backwards: the Tiltfile
manager arg `--insecure=false` actually enables TLS/HTTPS (insecure=true
disables TLS and uses HTTP). Update the section title and explanatory sentence
to state that `--insecure=false` enables TLS/HTTPS (or conversely that
`--insecure=true` disables TLS), and clarify that when connecting to a real BMC
on port 443 you should use `--insecure=false`; keep the `new_args -> metal`
entry with the `--insecure` flag as shown.
- Around line 83-100: The example BMC resource should explicitly include the
optional scheme field to indicate HTTPS when using port 443: update the BMC
example (kind: BMC) to add scheme: https alongside protocol.name: Redfish and
port: 443 so the InlineEndpoint/scheme is clear; reference the scheme field in
the same block where port: 443 is declared to make the intent explicit (e.g.,
under the protocol/endpoint section that currently contains protocol.name and
port).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 16f30b11-66d0-45a3-9277-927f1f96dd5d

📥 Commits

Reviewing files that changed from the base of the PR and between 52d7860 and 8d92bde.

📒 Files selected for processing (1)
  • docs/development/dev_setup.md

Comment thread docs/development/dev_setup.md
Comment thread docs/development/dev_setup.md Outdated
@xkonni xkonni force-pushed the doc/dev_remote_bmc branch from 6d11946 to 42fdbad Compare March 27, 2026 15:23
Comment thread docs/development/dev_setup.md
Comment thread docs/development/dev_setup.md Outdated
Comment thread docs/development/dev_setup.md Outdated
Comment thread docs/development/dev_setup.md Outdated
Comment thread docs/development/dev_setup.md Outdated
Comment thread docs/development/dev_setup.md
@xkonni xkonni force-pushed the doc/dev_remote_bmc branch from f428390 to 95bb6c8 Compare March 31, 2026 07:26
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
docs/development/dev_setup.md (1)

145-157: Consolidate duplicated BMCSecret manifest example.

The same manifest is documented twice. Keep one canonical block and reference it later to reduce drift and keep this guide tighter.

Also applies to: 182-194

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/development/dev_setup.md` around lines 145 - 157, There are two
identical examples of the BMCSecret manifest (the YAML showing apiVersion:
metal.ironcore.dev/v1alpha1, kind: BMCSecret, metadata: name, data:
username/password) duplicated in the doc; remove the second duplicate and keep a
single canonical BMCSecret YAML block (the one with apiVersion/ kind/ metadata/
data fields) and replace the removed copy with a short cross-reference comment
or link to the canonical section so later steps refer to that single manifest
example.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@docs/development/dev_setup.md`:
- Around line 145-157: There are two identical examples of the BMCSecret
manifest (the YAML showing apiVersion: metal.ironcore.dev/v1alpha1, kind:
BMCSecret, metadata: name, data: username/password) duplicated in the doc;
remove the second duplicate and keep a single canonical BMCSecret YAML block
(the one with apiVersion/ kind/ metadata/ data fields) and replace the removed
copy with a short cross-reference comment or link to the canonical section so
later steps refer to that single manifest example.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: f51e4165-bb62-43f5-9f3f-ec5f337e5976

📥 Commits

Reviewing files that changed from the base of the PR and between f428390 and 95bb6c8.

📒 Files selected for processing (1)
  • docs/development/dev_setup.md

@xkonni xkonni requested a review from afritzler March 31, 2026 09:39
@xkonni xkonni dismissed afritzler’s stale review April 21, 2026 06:48

changes implemented, 3 weeks passed.

@xkonni xkonni force-pushed the doc/dev_remote_bmc branch from 95bb6c8 to 5d1c455 Compare April 21, 2026 06:50
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/development/dev_setup.md`:
- Around line 145-157: Consolidate the duplicate BMCSecret examples by keeping
the YAML example and base64-note in Step 2 and replacing the second repeated
YAML in Step 4 with instructions to apply the file; specifically, in the Step 2
block that shows the BMCSecret (apiVersion: metal.ironcore.dev/v1alpha1, kind:
BMCSecret, metadata: name: <node-name>, data: username/password), add the
explicit note that username and password must be base64-encoded (and show the
echo -n '<value>' | base64 instruction), tell users to save it as
bmcsecret-<node-name>.yaml but not to apply it yet, then in the later step where
the duplicate YAML appears remove that YAML and instead instruct users to run
kubectl apply -f bmcsecret-<node-name>.yaml against the Kind cluster once the
manager is running.
- Around line 159-172: Update the docs block that describes enabling HTTPS to
note that the --insecure flag is deprecated and instruct users to use the new
flags instead; replace the guidance showing --insecure=false with a
recommendation to set --protocol=https and --skip-cert-validation=false in the
Tiltfile settings (referencing the same settings/new_args/metal example
structure), and update the example snippet and description to show the preferred
configuration and mention the deprecation of --insecure so readers won’t follow
the legacy flag.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: f01a493c-6a32-4163-9631-a554965803d0

📥 Commits

Reviewing files that changed from the base of the PR and between 95bb6c8 and 5d1c455.

📒 Files selected for processing (1)
  • docs/development/dev_setup.md

Comment thread docs/development/dev_setup.md
Comment thread docs/development/dev_setup.md
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
docs/development/dev_setup.md (1)

163-179: Clarify certificate validation behavior for development environments.

The guidance to use --skip-cert-validation=false is correct for production-grade BMCs with trusted certificates, but most development and lab BMCs use self-signed certificates. Users following this example will encounter TLS handshake errors without understanding why.

Consider adding a note explaining when to use each setting:

📝 Suggested clarification
 #### 3. Enable HTTPS for the BMC connection
 
 The `--insecure` flag is deprecated. Use `--protocol` and `--skip-cert-validation` instead.
 
-For a real BMC that uses HTTPS on port 443, configure the manager to use secure HTTPS with certificate validation enabled in the `Tiltfile`:
+For a real BMC that uses HTTPS on port 443, configure the manager in the `Tiltfile`:

 ```python
 settings = {
     "new_args": {
         "metal": [
             # ...
       "--protocol=https",
-      "--skip-cert-validation=false",
+      "--skip-cert-validation=true",  # or false if BMC has a trusted certificate
         ],
     }
 }

+> Note: Set --skip-cert-validation=true when the BMC uses a self-signed certificate (common in development environments). Use false only if the BMC certificate is signed by a CA trusted by the manager pod.


</details>

Alternatively, if the debug manager image with `ca-certificates` is intended to address this (by allowing users to install custom CAs), that workflow should be referenced here.

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @docs/development/dev_setup.md around lines 163 - 179, Update the Tiltfile
example under the HTTPS BMC section to clarify certificate validation behavior:
in the settings/new_args["metal"] example mention that --skip-cert-validation
can be true for development/lab BMCs using self-signed certs and false only for
BMCs with CA-trusted certs, and add a short note that explains when to use each
value (or reference the debug manager CA workflow if applicable) so users know
to set "--skip-cert-validation=true" for self-signed certs and
"--skip-cert-validation=false" for trusted certificates.


</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>🤖 Prompt for all review comments with AI agents</summary>

Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In @docs/development/dev_setup.md:

  • Around line 163-179: Update the Tiltfile example under the HTTPS BMC section
    to clarify certificate validation behavior: in the settings/new_args["metal"]
    example mention that --skip-cert-validation can be true for development/lab BMCs
    using self-signed certs and false only for BMCs with CA-trusted certs, and add a
    short note that explains when to use each value (or reference the debug manager
    CA workflow if applicable) so users know to set "--skip-cert-validation=true"
    for self-signed certs and "--skip-cert-validation=false" for trusted
    certificates.

</details>

---

<details>
<summary>ℹ️ Review info</summary>

<details>
<summary>⚙️ Run configuration</summary>

**Configuration used**: Organization UI

**Review profile**: CHILL

**Plan**: Pro

**Run ID**: `d1fa83fb-c094-4c59-8a0d-86053d269d8d`

</details>

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between 95bb6c874949be79be34ccbf596fd9aa96f3c8e7 and 49a5864edf9fcf31259c42ffcddb57ae16398db6.

</details>

<details>
<summary>📒 Files selected for processing (1)</summary>

* `docs/development/dev_setup.md`

</details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

@afritzler afritzler merged commit 35ee54d into main Apr 21, 2026
8 checks passed
@afritzler afritzler deleted the doc/dev_remote_bmc branch April 21, 2026 11:00
@github-project-automation github-project-automation Bot moved this to Done in Roadmap Apr 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/metal-automation documentation Improvements or additions to documentation size/L

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

5 participants